package com.eber.demo.design.singleton.hangry;

public class SingletonHungry {
    public static void main(String[] args) {
        System.out.println(Person.getInstance().getName());
    }

    private static class Person {
        // 私有构造器，防止外界new
        private Person() {
        }

        public String getName() {
            return "singleton hungry";
        }

        // 静态变量，在类加载时就会初始化。由于类加载是单线程的，保证了对象的唯一性（上来就创建，迫不及待，谓之“饿”）
        private static final Person INSTANCE = new Person();

        // 在外界拿到实例对象之前，是无法调用普通方法的，所以这里必须是静态的
        public static Person getInstance() {
            return INSTANCE;
        }
    }
}
